package com.ming.study.utils;

import com.ming.study.service.JwService;
import io.jsonwebtoken.ClaimJwtException;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.HashMap;


public class LoginInterceptor implements HandlerInterceptor  {
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response, Object handler) throws Exception {
        String userAccount = "";
        long createTime = 0;
        try{
            userAccount = JwtUtils.getUserAccountByJwtToken(request);
            createTime = JwtUtils.getJwtCreatedTime(request);
        } catch (Exception e) {
            ResponseUtil.out(response, R.create(ResultCodeImpl.NOT_LOGIN));
            return false;
        }
        if (userAccount.equals("") || createTime == 0) {
            ResponseUtil.out(response, R.create(ResultCodeImpl.NOT_LOGIN));
            return false;
        }
        request.setAttribute("userAccount", userAccount);
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    }
}
